package com.ruoyi.training.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 培训计划明细（单节课程/活动）对象 training_schedule
 * 
 * @author WorrilessGo
 * @date 2025-09-24
 */
public class TrainingSchedule extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 培训计划表ID（主键） */
    private String trainingScheduleId;

    /** 培训班ID（外键，关联training_class表） */
    @Excel(name = "培训班ID", readConverterExp = "外=键，关联training_class表")
    private String trainingClassId;

    /** 培训内容ID（关联培训内容表） */
    @Excel(name = "培训内容ID", readConverterExp = "关=联培训内容表")
    private String trainingContentId;

    /** 培训内容（冗余存储） */
    @Excel(name = "培训内容", readConverterExp = "冗=余存储")
    private String trainingContent;

    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date scheduleStartTime;

    /** 结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date scheduleEndTime;

    /** 培训地址 */
    @Excel(name = "培训地址")
    private String scheduleAddress;

    /** 人数限制 */
    @Excel(name = "人数限制")
    private Long personnelLimit;

    /** 培训教师ID（关联教师表） */
    @Excel(name = "培训教师ID", readConverterExp = "关=联教师表")
    private String scheduleTeacherId;

    /** 预约人数 */
    @Excel(name = "预约人数")
    private Long reservationCount;

    /** 是否需要预约 */
    @Excel(name = "是否需要预约")
    private Long needReservation;

    /** 说明 */
    @Excel(name = "说明")
    private String scheduleRemarks;

    public void setTrainingScheduleId(String trainingScheduleId) 
    {
        this.trainingScheduleId = trainingScheduleId;
    }

    public String getTrainingScheduleId() 
    {
        return trainingScheduleId;
    }

    public void setTrainingClassId(String trainingClassId) 
    {
        this.trainingClassId = trainingClassId;
    }

    public String getTrainingClassId() 
    {
        return trainingClassId;
    }

    public void setTrainingContentId(String trainingContentId) 
    {
        this.trainingContentId = trainingContentId;
    }

    public String getTrainingContentId() 
    {
        return trainingContentId;
    }

    public void setTrainingContent(String trainingContent) 
    {
        this.trainingContent = trainingContent;
    }

    public String getTrainingContent() 
    {
        return trainingContent;
    }

    public void setScheduleStartTime(Date scheduleStartTime) 
    {
        this.scheduleStartTime = scheduleStartTime;
    }

    public Date getScheduleStartTime() 
    {
        return scheduleStartTime;
    }

    public void setScheduleEndTime(Date scheduleEndTime) 
    {
        this.scheduleEndTime = scheduleEndTime;
    }

    public Date getScheduleEndTime() 
    {
        return scheduleEndTime;
    }

    public void setScheduleAddress(String scheduleAddress) 
    {
        this.scheduleAddress = scheduleAddress;
    }

    public String getScheduleAddress() 
    {
        return scheduleAddress;
    }

    public void setPersonnelLimit(Long personnelLimit) 
    {
        this.personnelLimit = personnelLimit;
    }

    public Long getPersonnelLimit() 
    {
        return personnelLimit;
    }

    public void setScheduleTeacherId(String scheduleTeacherId) 
    {
        this.scheduleTeacherId = scheduleTeacherId;
    }

    public String getScheduleTeacherId() 
    {
        return scheduleTeacherId;
    }

    public void setReservationCount(Long reservationCount) 
    {
        this.reservationCount = reservationCount;
    }

    public Long getReservationCount() 
    {
        return reservationCount;
    }

    public void setNeedReservation(Long needReservation) 
    {
        this.needReservation = needReservation;
    }

    public Long getNeedReservation() 
    {
        return needReservation;
    }

    public void setScheduleRemarks(String scheduleRemarks) 
    {
        this.scheduleRemarks = scheduleRemarks;
    }

    public String getScheduleRemarks() 
    {
        return scheduleRemarks;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("trainingScheduleId", getTrainingScheduleId())
            .append("trainingClassId", getTrainingClassId())
            .append("trainingContentId", getTrainingContentId())
            .append("trainingContent", getTrainingContent())
            .append("scheduleStartTime", getScheduleStartTime())
            .append("scheduleEndTime", getScheduleEndTime())
            .append("scheduleAddress", getScheduleAddress())
            .append("personnelLimit", getPersonnelLimit())
            .append("scheduleTeacherId", getScheduleTeacherId())
            .append("reservationCount", getReservationCount())
            .append("needReservation", getNeedReservation())
            .append("scheduleRemarks", getScheduleRemarks())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
